/*
 * =====================================================================================
 *
 *       Filename:  const.
 *
 *    Description:  Hlavickovy soubor s konstantami puzitymi v projektu. 
 *
 *        Version:  1.0
 *        Created:  17.4.2013 20:06:31
 *       Compiler:  gcc
 *
 *         Author:  Radek Necas, xnecas18@stud.fit.vutbr.cz 
 *   Organization:  FIT, VUT Brno
 *
 * =====================================================================================
 */

#ifndef IBP_CONST_H
#define IBP_CONST_H

/*
 * Konstanty urcujici jakym zpusobem se budou ziskavat udaje
 * o procesich viditelnych uzivateli. Jakym zpusobem se budou
 * porovnavat s referencnimi procesy.
 */
typedef enum compareType {
    BY_PROC = 1,    // Bude se porovnavat dle ciselnych podadresaru v /proc
    BY_PS,          // Bude se porovnavat s vypisem utilitou ps
    ALL             // Budou se brat v uvahu oba zpusoby
} tCompareType;

/*
 * Konstanty urcujici jakym zpusobme se budou ziskavat vsechny procesy,
 * tzn. vcetne skrytych (referencni hodnoty pro porovnani).
 */
typedef enum getProcsType {
    FROM_KILL = 50,     // Procesy se budou ziskavat zasilanim signalu kill()
    FROM_TASKLIST,      // Ziskani pruchodem task list
    FROM_PIDHASH        // Ziskani pomoci pid hash
} tGetProcsType;


#define TRUE    1
#define FALSE   0

// Maximalni uvazovana hodnota pid
#define MAX_PID         32768
// Maximalni delka textove reprezentace pid
#define MAX_PID_LEN     6

// Nazvy souboru s nimiz se pracuje v projektu
#define PROCS_INFO_FILENAME     "ibpProcInfo.ibp"
#define PROCS_INFO_PATH         "/proc/ibpProcInfo.ibp"
#define ALL_PROCS_FILENAME      "ibpAllProcs.ibp"
#define ALL_PROCS_PATH          "/proc/ibpAllProcs.ibp"
#define PS_PROCS_FILENAME       "ibpPsOut.ibp"
#define PS_PROCS_PATH           "./ibpPsOut.ibp"

#endif
